/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package br.com.deployment.interfaces;

import br.com.deployment.entidade.acesso.Usuario;
import br.com.deployment.entidade.selo.Distribuicao;
import br.com.deployment.entidade.selo.Selo;
import br.com.deployment.entidade.selo.TipoSelo;
import br.com.deployment.utilitario.DistribuirSelos;
import br.com.deployment.utilitario.ResulDistribuicao;
import java.util.List;
import javax.ejb.Remote;

/**
 *
 * @author elyjr
 */
@Remote
public interface DistribuicaoDaoIn{
    
    public void save(Distribuicao entity);

    public void delete(Distribuicao entity);

    public Distribuicao update(Distribuicao entity);

    public Distribuicao find(int entityID);
    
    
    public List<Distribuicao> findRecebedor(Usuario recebedor);

    public List<Distribuicao> findAll();

    public List<Distribuicao> findTipoEnd(Distribuicao dis);
    
    public List<Selo> atribuirSelos(TipoSelo tipoSelo, int qtd);

    public Long qtdSelo(Usuario u, TipoSelo tSelo);

    public List<Selo> meusSelo(Usuario u, TipoSelo tSelo) ;

    public Boolean containsSelo(TipoSelo tSelo, Integer qtd) ;

    public List<Selo> getSelos(TipoSelo ts, Distribuicao d);
    
    public List<TipoSelo> verificarTipoSelo(Distribuicao d);

    // Método não está sendo usado
    public void distribuirSelos(List<DistribuirSelos> list, List<ResulDistribuicao> resulDis, List<Selo> lstSeloAll);

    public List<Selo> selosDistribuicao(Distribuicao dis);
    
    public List<TipoSelo> editarDistribuicao(Distribuicao dis);

    public TipoSelo agrupando(TipoSelo tipoSelo) ;
    
    public int count(TipoSelo tipoSelo);

    public List<Selo> tipoSeloListaSelos(TipoSelo tselo, Distribuicao dis);

    public List<Distribuicao> pesquisaDistribuicao(Distribuicao distribuicao);
    // select ls from Distribuicao d JOIN d.listSelo ls JOIN ls.tipoSelo ts where ts.id = :id";
}
